home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club (Business) 1997 July / Software of the Month Club - Business (Volume 239) (July 1997).iso / pc / code / shared.dxr / 04473_Universal InterFace Handlers.ls < prev    next >
Encoding:
Text File  |  1996-02-21  |  21.0 KB  |  606 lines

  1. global gWorld, gStates, gOBJECTS, gHotRects, gScreenState, gCursorList, gTimerList, gKeyRef, cNullCast, cNullQTmovie, NULLRECT, gSpritePropTypes, gQTproplist, cNUllCharmovie, sPICTSPRITE, sQTSPRITE, sCURSORSPRITE, sCPSprite, sQTCharSprite, gUnvObjects, gAngles, gLastCursor, gPlayingQT, gScreenWidth, gScreenHeight, gCurKeyList, gTransMovieName, gAnimationObjects, gDeathRow, gLastKeyList, gKeyFrameSound, gEnvironmentSound, gGlobal, gKeyFrameSoundMode, gHaveNavs, gNextEnvLetter, gNextDIRFile, void, gMIDIPlayTRUE, gInitalized, xNAVXOBJ, xCURXOBJ, gCPU, gfileSep, gRootPath, gHDpath, gXobjs, gXOBJPath, gCDpath, gCDName, gTempHotRects, gdirtyGame, gScrollTextlist, gQTcharState, gQTmovPath
  2.  
  3. on ReleaseUNVobject ObjRef
  4.   set obj to getaProp(gOBJECTS, ObjRef)
  5.   if getaProp(obj, #Aquired) = #false then
  6.     makeDynamic(ObjRef, #Aquired, #true)
  7.     ADDObjects([ObjRef])
  8.   end if
  9. end
  10.  
  11. on DoTubeObj
  12. end
  13.  
  14. on DosyrnObj
  15.   set Mobj to getaProp(gOBJECTS, #DefibScreen)
  16.   if (getaProp(gCurKeyList, #RefName) = #H12) and (getaProp(Mobj, #State) = #Heart) then
  17.     set obj to getaProp(gOBJECTS, #Plunger)
  18.     setaProp(obj, #loc, point(525, 70))
  19.     set the locH of sprite getaProp(obj, #spriteNum) to 525
  20.     set hotrectnum to integer(getaProp(obj, #spriteNum) & "01")
  21.     setaProp(getaProp(gHotRects, hotrectnum), #rect, rect(505, 35, 546, 106))
  22.     setaProp(obj, #HotRect, [rect(505, 35, 546, 106)])
  23.     set obj to getaProp(gOBJECTS, #syringe)
  24.     setaProp(obj, #loc, point(396, 70))
  25.     set the locH of sprite getaProp(obj, #spriteNum) to 396
  26.     set hotrectnum to integer(getaProp(obj, #spriteNum) & "01")
  27.     setaProp(getaProp(gHotRects, hotrectnum), #rect, rect(280, 37, 512, 103))
  28.     setaProp(obj, #HotRect, [rect(280, 37, 512, 103)])
  29.     set obj to getaProp(gOBJECTS, #syrnObj)
  30.     set the loc of sprite getaProp(obj, #spriteNum) to getaProp(obj, #loc)
  31.     set hotrectnum to integer(getaProp(obj, #spriteNum) & "01")
  32.     setaProp(getaProp(gHotRects, hotrectnum), #rect, getAt(getaProp(obj, #HotRect), 1))
  33.     setaProp(getaProp(gOBJECTS, #syrnObj), #Aquired, #USED)
  34.     Delobjects([#syrnObj])
  35.     cursorandupdate()
  36.   end if
  37. end
  38.  
  39. on DoLeaf1Obj
  40.   if getaProp(gCurKeyList, #RefName) = #G20 then
  41.     set ObjRef to #JenkinsLeafSporeParent
  42.     set sporesOnPlate to getaProp(getaProp(gOBJECTS, #GrowSporesLab), #sporesOnPlate)
  43.     if getPos(sporesOnPlate, #spore6) = 0 then
  44.       releaseSpores(ObjRef)
  45.     end if
  46.   end if
  47. end
  48.  
  49. on DoLeaf2Obj
  50.   if getaProp(gCurKeyList, #RefName) = #G20 then
  51.     set ObjRef to #TropicalLeafSporeParent
  52.     set sporesOnPlate to getaProp(getaProp(gOBJECTS, #GrowSporesLab), #sporesOnPlate)
  53.     if getPos(sporesOnPlate, #spore5) = 0 then
  54.       releaseSpores(ObjRef)
  55.     end if
  56.   end if
  57. end
  58.  
  59. on DoBagObj
  60.   if (char 1 of string(getaProp(gCurKeyList, #RefName)) = "F") and (getaProp(gCurKeyList, #RefName) <> #F69) and (count(getaProp(getaProp(gOBJECTS, #ScanPapers), #paperLocRects)) = 16) then
  61.     if the shiftDown and (gGlobal = 1) and (count(getaProp(getaProp(gOBJECTS, #ScanPapers), #Children)) < 16) then
  62.       pickUpPapers()
  63.     end if
  64.     set Papers to getaProp(getaProp(gOBJECTS, #ScanPapers), #Children)
  65.     repeat with Page in Papers
  66.       set p to getaProp(gOBJECTS, Page)
  67.       set sNum to getaProp(p, #spriteNum)
  68.       set the castNum of sprite sNum to getaProp(getaProp(p, #cast), #init)
  69.       set the ink of sprite sNum to 0
  70.       set the loc of sprite sNum to getaProp(p, #Loc2)
  71.     end repeat
  72.     playSound("E04FXPL1.AIF", #keyframeCast)
  73.     repeat while the stillDown
  74.       cursorandupdate()
  75.     end repeat
  76.     repeat with Page in Papers
  77.       set p to getaProp(gOBJECTS, Page)
  78.       set sNum to getaProp(p, #spriteNum)
  79.       set the castNum of sprite sNum to cNullCast
  80.       set the ink of sprite sNum to 0
  81.       set the loc of sprite sNum to point(-2000, -2000)
  82.     end repeat
  83.   else
  84.     if getaProp(gCurKeyList, #RefName) = #F69 then
  85.       releasePapers()
  86.     end if
  87.   end if
  88. end
  89.  
  90. on DoSeedObj
  91.   if (getaProp(gCurKeyList, #RefName) = #B16B) and (getaProp(getaProp(gStates, #Conditions), #Weather) = #HOT) then
  92.     makeDynamic(#SeedObj, #Aquired, #USED)
  93.     Delobjects([#SeedObj])
  94.     genExitKF(#B16C)
  95.   end if
  96. end
  97.  
  98. on DoMapObj
  99.   if (char 1 of string(gKeyRef) = "F") and (getOne(getaProp(getaProp(gOBJECTS, #MapObj), #noMapList), gKeyRef) = 0) then
  100.     set obj to getaProp(gOBJECTS, #MapObj)
  101.     if getaProp(obj, #State) = #NoMap then
  102.       ADDObjects(getaProp(getaProp(obj, #SpecialChild), #map))
  103.       makeDynamic(#MapObj, #State, #map)
  104.     else
  105.       if getaProp(obj, #State) = #map then
  106.         Delobjects(getaProp(getaProp(obj, #SpecialChild), #map))
  107.         makeDynamic(#MapObj, #State, #NoMap)
  108.       end if
  109.     end if
  110.   end if
  111. end
  112.  
  113. on DoCDObjDown
  114. end
  115.  
  116. on DoCDObj
  117. end
  118.  
  119. on CDAction ObjRef
  120.   set rangerBethDanceFlag to 0
  121.   set obj to getaProp(gOBJECTS, ObjRef)
  122.   playCD()
  123.   if getaProp(gCurKeyList, #RefName) = #F04 then
  124.     set timescDPlayed to getaProp(getaProp(gOBJECTS, #RangerBeth), #timescDPlayed)
  125.     makeDynamic(#RangerBeth, #timescDPlayed, timescDPlayed + 1)
  126.     set rangerBethDanceFlag to 1
  127.     set DanceDelayCounter to 0
  128.   end if
  129.   set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #down), 1)
  130.   updateStage()
  131.   set C to count(getaProp(getaProp(obj, #cast), #down))
  132.   set THIS to 1
  133.   repeat while the mouseDown
  134.     if rangerBethDanceFlag then
  135.       set DanceDelayCounter to DanceDelayCounter + 1
  136.       if DanceDelayCounter > 20 then
  137.         doRangerBethVid(#cdplay)
  138.         set rangerBethDanceFlag to 0
  139.       end if
  140.     end if
  141.     if inside(point(the mouseH, the mouseV), getAt(getaProp(obj, #HotRect), 1)) then
  142.       set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #down), THIS)
  143.     else
  144.       set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #UP), 1)
  145.     end if
  146.     cursorandupdate()
  147.     set THIS to THIS + 1
  148.     if THIS > C then
  149.       set THIS to 1
  150.     end if
  151.   end repeat
  152.   set the castNum of sprite getaProp(obj, #spriteNum) to getAt(getaProp(getaProp(obj, #cast), #UP), 1)
  153.   updateStage()
  154.   do(getaProp(getaProp(obj, #action), #UP))
  155. end
  156.  
  157. on DoUnvOpen
  158.   OpenUNVDialog()
  159. end
  160.  
  161. on DoUnvSaveAs
  162.   SaveUNVDialog()
  163. end
  164.  
  165. on DoUnvSave
  166.   if getaProp(gStates, #gCurrentGameName) <> #virgin then
  167.     SaveGameData()
  168.   else
  169.     SaveUNVDialog()
  170.   end if
  171. end
  172.  
  173. on DoUnvNew
  174.   newGame()
  175. end
  176.  
  177. on DoUnvQuit
  178.   if gdirtyGame = 0 then
  179.     halt()
  180.   else
  181.     OpenQuitDialog()
  182.   end if
  183. end
  184.  
  185. on PDAJumptoMap
  186.   if the shiftDown and (gGlobal = 1) then
  187.     set Childlist to [#PDAJUMPG, #PDAJUMPF, #PDAJUMPH, #PDAJUMPD, #PDAJUMPC]
  188.   else
  189.     set aList to [#PDAJUMPC: #C01, #PDAJUMPD: #D01, #PDAJUMPF: #F01, #PDAJUMPG: #G06, #PDAJUMPH: #H01]
  190.     set Childlist to []
  191.     repeat with X = 1 to 5
  192.       set Here to getAt(aList, X)
  193.       if not voidp(getaProp(getaProp(gStates, #BeenThere), Here)) and (char 1 of string(Here) <> getaProp(gStates, #EnviroLetter)) then
  194.         add(Childlist, getPropAt(aList, X))
  195.       end if
  196.     end repeat
  197.   end if
  198.   sort(Childlist)
  199.   setaProp(getaProp(gOBJECTS, #PDAMapOBJ), #Children, Childlist)
  200.   PDANodeJump(#PDAMapOBJ)
  201. end
  202.  
  203. on PDAnotes num
  204.   set obj to getaProp(gOBJECTS, #PDANotesfield)
  205.   set Page to getaProp(obj, #PageNum) + num
  206.   if Page > getaProp(obj, #Total) then
  207.     set Page to 0
  208.   end if
  209.   if Page < 0 then
  210.     set Page to 0
  211.   end if
  212.   set aTime to Page * 60
  213.   set the movieTime of sprite getaProp(obj, #spriteNum) to aTime
  214.   makeDynamic(#PDANotesfield, #PageNum, Page)
  215.   setaProp(getaProp(obj, #QTProp), #movieTime, aTime)
  216. end
  217.  
  218. on SetCreditsPDAFields
  219.   set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinCredfield), #cast), #text) to string(getaProp(gStates, #Credits))
  220.   set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinAverfield), #cast), #text) to string(((getaProp(gStates, #Credits) + 0) / 2) - 20)
  221.   set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinCharfield), #cast), #text) to "17"
  222.   set the text of cast getaProp(getaProp(getaProp(gOBJECTS, #PDAFinPINfield), #cast), #text) to "4669"
  223. end
  224.  
  225. on PDAMode Mode
  226.   set the castNum of sprite getaProp(getaProp(gOBJECTS, #PDAMode), #spriteNum) to getaProp(getaProp(getaProp(gOBJECTS, #PDAMode), #cast), Mode)
  227.   playSound("PDAclick.aif", #keyframeCast, #NOW)
  228.   if Mode = #Fin then
  229.     if getProp(getaProp(gOBJECTS, #PDAFinanceOBJ), #Login) = #true then
  230.       SetCreditsPDAFields()
  231.       PDANodeJump(#PDAFinanceOBJ)
  232.     else
  233.       PDANodeJump(#PDAFinInitOBJ)
  234.     end if
  235.   else
  236.     if Mode = #Mes then
  237.       PDALoadSeries(#PDAMessageObj)
  238.     else
  239.       if Mode = #Dol then
  240.         PDANodeJump(#PDADownLoadObj)
  241.       end if
  242.     end if
  243.   end if
  244. end
  245.  
  246. on PDALoadSeries type
  247.   if voidp(type) then
  248.     set type to #PDASeriesOBJ
  249.   else
  250.   end if
  251.   set obj to getaProp(gOBJECTS, type)
  252.   if count(getaProp(obj, #DataBase)) > 0 then
  253.     set the movieRate of sprite sQTCharSprite to 0
  254.     set the loc of sprite sQTCharSprite to point(-2000, -2000)
  255.     updateStage()
  256.     PDANodeJump(type)
  257.     InitPDAmesList(type)
  258.   else
  259.     set the movieRate of sprite sQTCharSprite to 0
  260.     set the loc of sprite sQTCharSprite to point(-2000, -2000)
  261.     updateStage()
  262.     setaProp(getaProp(gOBJECTS, #PDAVid), #DisplayState, #UN)
  263.     PDANodeJump(type)
  264.     InitNoMessage(type)
  265.   end if
  266. end
  267.  
  268. on PDARelease What
  269.   set PDA to getaProp(gOBJECTS, #PDAObj)
  270.   set DnOBJ to getaProp(gOBJECTS, #PDADownLoadObj)
  271.   if (getaProp(PDA, #Aquired) = #true) and symbolp(What) then
  272.     makeDynamic(#PDAObj, #cast, getaProp(PDA, #phoneCast))
  273.     set the castNum of sprite getaProp(PDA, #spriteNum) to getaProp(getaProp(PDA, #cast), #UP)
  274.     playSound("PDARelease.aif", #keyframeCast)
  275.     if What = #DOCSeries then
  276.       if getaProp(DnOBJ, #State) = #NONE then
  277.         makeDynamic(#PDADownLoadObj, #State, #SeriesONLY)
  278.         makeDynamic(#PDADownloads, #DisplayState, 1)
  279.       else
  280.         if getaProp(DnOBJ, #State) = #ProsOnly then
  281.           makeDynamic(#PDADownLoadObj, #State, #BOTH)
  282.           setaProp(getaProp(gStates, #Conditions), #Trailer, #true)
  283.           makeDynamic(#PDADownloads, #DisplayState, 3)
  284.         end if
  285.       end if
  286.     else
  287.       if What = #ProsProSeries then
  288.         if getaProp(DnOBJ, #State) = #NONE then
  289.           makeDynamic(#PDADownLoadObj, #State, #ProsOnly)
  290.           makeDynamic(#PDADownloads, #DisplayState, 2)
  291.         else
  292.           if getaProp(DnOBJ, #State) = #SeriesONLY then
  293.             makeDynamic(#PDADownLoadObj, #State, #BOTH)
  294.             setaProp(getaProp(gStates, #Conditions), #Trailer, #true)
  295.             makeDynamic(#PDADownloads, #DisplayState, 3)
  296.           end if
  297.         end if
  298.       end if
  299.     end if
  300.   else
  301.     if stringp(What) then
  302.       if char 4 of What = "m" then
  303.         MessageReleasePDA(What)
  304.       else
  305.         SeriesReleasePDA(What)
  306.       end if
  307.     end if
  308.   end if
  309. end
  310.  
  311. on VideoErrorCheck videos, What
  312.   if getOne(videos, What) = 0 then
  313.     put "Error PDARelease video named incorrect" && What
  314.     return #false
  315.   else
  316.     return #true
  317.   end if
  318. end
  319.  
  320. on MessageReleasePDA What
  321.   set obj to getaProp(gOBJECTS, #PDAMessageObj)
  322.   set PDA to getaProp(gOBJECTS, #PDAObj)
  323.   set videos to getaProp(getaProp(getaProp(gOBJECTS, #PDAVid), #cast), #MESS)
  324.   set Check to VideoErrorCheck(videos, What)
  325.   if Check = #true then
  326.     set Dbase to getaProp(obj, #DataBase)
  327.     set Have to #false
  328.     repeat with Data in Dbase
  329.       if getaProp(Data, #VID) = What then
  330.         set Have to #true
  331.         exit repeat
  332.       end if
  333.     end repeat
  334.     if Have = #false then
  335.       set MesNum to integer(char 5 to 6 of What)
  336.       set CharLetter to value("#" & char 7 of What)
  337.       set aText to getaProp(getaProp(obj, #text), CharLetter)
  338.       set vidList to [#text: aText, #VID: What, #play: #false]
  339.       set ref to count(Dbase) + 1
  340.       setaProp(Dbase, ref, vidList)
  341.       makeDynamic(#PDAMessageObj, #VidNum, ref)
  342.       if getaProp(PDA, #Aquired) = #true then
  343.         TimePDArelease()
  344.       end if
  345.     end if
  346.   end if
  347. end
  348.  
  349. on SeriesReleasePDA What
  350.   set obj to getaProp(gOBJECTS, #PDASeriesOBJ)
  351.   set PDA to getaProp(gOBJECTS, #PDAObj)
  352.   set videos to getaProp(getaProp(getaProp(gOBJECTS, #PDAVid), #cast), #Series)
  353.   set Check to VideoErrorCheck(videos, What)
  354.   if Check = #true then
  355.     set Dbase to getaProp(obj, #DataBase)
  356.     set Have to #false
  357.     repeat with Data in Dbase
  358.       if getaProp(Data, #VID) = What then
  359.         set Have to #true
  360.         exit repeat
  361.       end if
  362.     end repeat
  363.     if Have = #false then
  364.       set MesNum to value("#" & char 4 to 6 of What)
  365.       set aText to getaProp(getaProp(obj, #text), MesNum)
  366.       set vidList to [#text: aText, #VID: What, #play: #false]
  367.       set ref to count(Dbase) + 1
  368.       setaProp(Dbase, ref, vidList)
  369.       makeDynamic(#PDASeriesOBJ, #VidNum, ref)
  370.       if getaProp(PDA, #Aquired) = #true then
  371.         TimePDArelease()
  372.       end if
  373.     end if
  374.   end if
  375. end
  376.  
  377. on TimePDArelease
  378.   set PDA to getaProp(gOBJECTS, #PDAObj)
  379.   makeDynamic(#PDAObj, #cast, getaProp(PDA, #phoneCast))
  380.   set the castNum of sprite getaProp(PDA, #spriteNum) to getaProp(getaProp(PDA, #cast), #UP)
  381.   playSound("PDARelease.aif", #keyframeCast)
  382. end
  383.  
  384. on InitNoMessage ObjRef
  385.   set obj to getaProp(gOBJECTS, ObjRef)
  386.   set TextHolderfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #Holder)
  387.   set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text)
  388.   set DataBase to getaProp(obj, #DataBase)
  389.   set the text of cast TextHolderfield to EMPTY
  390.   set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text)
  391.   set the foreColor of cast TextDisplayfield to 97
  392.   set the text of cast TextDisplayfield to "NO VIDEO MESSAGES"
  393. end
  394.  
  395. on InitPDAmesList ObjRef
  396.   set obj to getaProp(gOBJECTS, ObjRef)
  397.   set TextHolderfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #Holder)
  398.   set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text)
  399.   set DataBase to getaProp(obj, #DataBase)
  400.   set the text of cast TextHolderfield to EMPTY
  401.   set sum to count(DataBase)
  402.   repeat with t = 1 to sum
  403.     set tnum to sum - (t - 1)
  404.     put getaProp(getaProp(DataBase, t), #text) into line tnum of field TextHolderfield
  405.   end repeat
  406.   put "-------------" into line sum + 1 of field TextHolderfield
  407.   put "-------------" into line sum + 2 of field TextHolderfield
  408.   set TextDisplayfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text)
  409.   setaProp(obj, #Numlines, sum)
  410.   setaProp(obj, #Curline, 1)
  411.   setaProp(obj, #TextHolder, TextHolderfield)
  412.   setaProp(obj, #TextDisplay, TextDisplayfield)
  413.   set CurSelect to getaProp(obj, #VidNum)
  414.   DisplayTextPDAScroll(1, TextDisplayfield, TextHolderfield, DataBase, CurSelect)
  415.   DisplayPDAVid(ObjRef)
  416. end
  417.  
  418. on setPlayPDAVidnum ObjRef
  419.   set obj to getaProp(gOBJECTS, ObjRef)
  420.   set Textfield to getaProp(obj, #TextDisplay)
  421.   set C to getaProp(obj, #Numlines)
  422.   set lineNum to the mouseLine
  423.   if count(getaProp(obj, #DataBase)) <> 0 then
  424.     if (lineNum > 0) and (lineNum <= 19) then
  425.       set scrolloffset to getaProp(obj, #Curline) - 1
  426.       set vidnumReal to C + 1 - (lineNum + scrolloffset)
  427.       if not voidp(getaProp(obj, #VidNum)) then
  428.         set lastvid to getaProp(obj, #VidNum) + 1 - C - scrolloffset
  429.         set the foreColor of line lastvid of cast Textfield to 97
  430.       end if
  431.       set the foreColor of line lineNum of cast Textfield to 145
  432.       makeDynamic(ObjRef, #VidNum, vidnumReal)
  433.       DisplayPDAVid(ObjRef)
  434.     end if
  435.   end if
  436. end
  437.  
  438. on PDAMessScroll num
  439.   set obj to getaProp(gOBJECTS, #PDAMessageObj)
  440.   if count(getaProp(obj, #DataBase)) <> 0 then
  441.     set Curline to getaProp(obj, #Curline) + num
  442.     if Curline < 1 then
  443.       set Curline to 1
  444.     else
  445.       if (Curline + 18) > getaProp(obj, #Numlines) then
  446.         set Curline to getaProp(obj, #Curline)
  447.       end if
  448.     end if
  449.     setaProp(obj, #Curline, Curline)
  450.     set TextDisplayfield to getaProp(obj, #TextDisplay)
  451.     set Textdatafield to getaProp(obj, #TextHolder)
  452.     set DataBase to getaProp(obj, #DataBase)
  453.     set CurSelect to getaProp(obj, #VidNum)
  454.     DisplayTextPDAScroll(Curline, TextDisplayfield, Textdatafield, DataBase, CurSelect)
  455.   end if
  456. end
  457.  
  458. on DisplayTextPDAScroll Startline, TextDisplayfield, Textdatafield, DataBase, CurSelect
  459.   set the foreColor of cast TextDisplayfield to 97
  460.   set C to count(DataBase)
  461.   set CurSelect to C - (CurSelect - 1)
  462.   if C > 19 then
  463.     set CurSelect to CurSelect - (Startline - 1)
  464.     set endline to Startline + 18
  465.     set the text of cast TextDisplayfield to line Startline to endline of the text of cast Textdatafield
  466.     if (CurSelect < 20) and (CurSelect > 0) then
  467.       set the foreColor of line CurSelect of cast TextDisplayfield to 145
  468.     end if
  469.   else
  470.     set Startline to 1
  471.     set endline to C
  472.     set the text of cast TextDisplayfield to line Startline to endline of the text of cast Textdatafield
  473.     put " " after field TextDisplayfield
  474.     set the foreColor of line CurSelect of cast TextDisplayfield to 145
  475.   end if
  476. end
  477.  
  478. on DisplayPDAVid ObjRef
  479.   set obj to getaProp(gOBJECTS, ObjRef)
  480.   set Vobj to getaProp(gOBJECTS, #PDAVid)
  481.   set Textfield to getaProp(getaProp(getaProp(gOBJECTS, getaProp(obj, #field)), #cast), #text)
  482.   if count(getaProp(obj, #DataBase)) <> 0 then
  483.     set VidPath to gCDName & "DATA" & gfileSep & "J_enviro" & gfileSep
  484.     set Base to getaProp(getaProp(obj, #DataBase), getaProp(obj, #VidNum))
  485.     set VidName to getaProp(Base, #VID)
  486.     setaProp(getaProp(Vobj, #cast), getaProp(Vobj, #DisplayState), VidName)
  487.     if the timer < 0 then
  488.       set the fileName of cast cNUllCharmovie to string(VidPath & getaProp(Base, #VID))
  489.     end if
  490.     CallTheTimer()
  491.     set the loc of sprite sQTCharSprite to point(408, 170)
  492.     updateStage()
  493.     set the movieTime of sprite sQTCharSprite to 0
  494.     set the movieRate of sprite sQTCharSprite to 0
  495.     stopSound(#ALL)
  496.     updateStage()
  497.     set the movieRate of sprite sQTCharSprite to 1
  498.     setaProp(Base, #play, #true)
  499.   else
  500.     set the movieRate of sprite sQTCharSprite to 0
  501.   end if
  502. end
  503.  
  504. on DoPDARew
  505.   if the loc of sprite sQTCharSprite = point(408, 170) then
  506.     set the movieRate of sprite sQTCharSprite to -3
  507.     updateStage()
  508.     set aTime to the ticks + 100
  509.     repeat while aTime > the ticks
  510.       cursorandupdate()
  511.     end repeat
  512.     set the movieRate of sprite sQTCharSprite to 0
  513.     set the movieTime of sprite sQTCharSprite to 0
  514.     updateStage()
  515.   end if
  516. end
  517.  
  518. on DoPDAPlay
  519.   if the loc of sprite sQTCharSprite = point(408, 170) then
  520.     if the movieRate of sprite sQTCharSprite = 0 then
  521.       stopSound(#ALL)
  522.       set the movieRate of sprite sQTCharSprite to 1
  523.     else
  524.       set the movieRate of sprite sQTCharSprite to 0
  525.     end if
  526.   end if
  527. end
  528.  
  529. on OpenPDA
  530.   SuppendCurrentKF()
  531.   setaProp(gQTcharState, #CharMovPath, gQTmovPath)
  532.   set gQTmovPath to gCDName & "DATA" & gfileSep & "J_enviro" & gfileSep
  533.   set obj to getaProp(gOBJECTS, #ThePDA)
  534.   set the castNum of sprite getaProp(obj, #spriteNum) to getaProp(getaProp(obj, #cast), #BG)
  535.   set the loc of sprite getaProp(obj, #spriteNum) to getaProp(obj, #loc)
  536.   updateStage()
  537.   PaletteSwitch("PDA Palette")
  538.   updateStage()
  539.   setaProp(getaProp(gOBJECTS, #PDAMode), #State, #NONE)
  540.   makeDynamic(#PDAObj, #cast, getaProp(getaProp(gOBJECTS, #PDAObj), #normalCast))
  541.   ADDObjects([#ThePDA])
  542. end
  543.  
  544. on ClosePDA
  545.   set obj to getaProp(gOBJECTS, #ThePDA)
  546.   if not voidp(getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)) then
  547.     Delobjects([getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)])
  548.     deleteProp(getaProp(gOBJECTS, #ThePDA), #CurNode)
  549.   end if
  550.   Delobjects([#ThePDA])
  551.   set the castNum of sprite getaProp(obj, #spriteNum) to getaProp(getaProp(obj, #cast), #BG)
  552.   set the loc of sprite getaProp(obj, #spriteNum) to getaProp(obj, #loc)
  553.   updateStage()
  554.   PaletteSwitch("Palette" && getaProp(gStates, #EnviroLetter))
  555.   set the castNum of sprite getaProp(obj, #spriteNum) to cNullCast
  556.   set the loc of sprite getaProp(obj, #spriteNum) to point(-2000, -2000)
  557.   stopSound(#ALL)
  558.   updateStage()
  559.   set gQTmovPath to getaProp(gQTcharState, #CharMovPath)
  560.   ReinstateCurrentKF()
  561. end
  562.  
  563. on CleanUpPDAJump
  564.   set obj to getaProp(gOBJECTS, #ThePDA)
  565.   if not voidp(getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)) then
  566.     Delobjects([getaProp(getaProp(gOBJECTS, #ThePDA), #CurNode)])
  567.     deleteProp(getaProp(gOBJECTS, #ThePDA), #CurNode)
  568.   end if
  569.   Delobjects([#ThePDA])
  570.   set PDA to getaProp(gOBJECTS, #PDAObj)
  571.   set the castNum of sprite getaProp(PDA, #spriteNum) to getaProp(getaProp(obj, #cast), #BG)
  572.   set the loc of sprite getaProp(PDA, #spriteNum) to getaProp(obj, #loc)
  573.   updateStage()
  574.   ReinstateCurrentKF(#true)
  575. end
  576.  
  577. on PaletteSwitch palette
  578.   puppetPalette(palette, 120)
  579.   if gCPU = #MAC then
  580.     gFixPalette(mPatchIt)
  581.   end if
  582.   updateStage()
  583. end
  584.  
  585. on PDANodeJump nodeRef
  586.   set PDA to getaProp(gOBJECTS, #ThePDA)
  587.   if not voidp(getaProp(PDA, #CurNode)) then
  588.     Delobjects([getaProp(PDA, #CurNode)])
  589.   end if
  590.   set obj to getaProp(gOBJECTS, #MapObj)
  591.   if getaProp(obj, #State) = #map then
  592.     Delobjects(getaProp(getaProp(obj, #SpecialChild), #map))
  593.     makeDynamic(#MapObj, #State, #NoMap)
  594.   end if
  595.   set the castNum of sprite getaProp(getaProp(gOBJECTS, #PDABG), #spriteNum) to getaProp(getaProp(getaProp(gOBJECTS, #PDABG), #cast), nodeRef)
  596.   ADDObjects([nodeRef])
  597.   setaProp(PDA, #CurNode, nodeRef)
  598. end
  599.  
  600. on PDAThumb
  601.   set the loc of sprite sCURSORSPRITE to point(-2000, -2000)
  602.   makeDynamic(#PDAFinanceOBJ, #Login, #true)
  603.   SetCreditsPDAFields()
  604.   PDANodeJump(#PDAFinanceOBJ)
  605. end
  606.